From 64431a17e3d2947a4153bdb098c70d4fe87d7bdc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 5 Dec 2015 19:09:17 -0500 Subject: [PATCH] Add a test for required cursors We use these cursors in GTK+, so check for their existence. --- testsuite/gtk/Makefile.am | 1 + testsuite/gtk/check-cursor-names.c | 65 ++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 testsuite/gtk/check-cursor-names.c diff --git a/testsuite/gtk/Makefile.am b/testsuite/gtk/Makefile.am index 79f494654e..7d1bda4e40 100644 --- a/testsuite/gtk/Makefile.am +++ b/testsuite/gtk/Makefile.am @@ -40,6 +40,7 @@ TEST_PROGS += \ builderparser \ cellarea \ check-icon-names \ + check-cursor-names \ clipboard \ cssprovider \ defaultvalue \ diff --git a/testsuite/gtk/check-cursor-names.c b/testsuite/gtk/check-cursor-names.c new file mode 100644 index 0000000000..b61084876e --- /dev/null +++ b/testsuite/gtk/check-cursor-names.c @@ -0,0 +1,65 @@ +#include + +static char *cursor_names[] = { + /*** resize cursors that we're using for csd, from gtkwindow.c ***/ + "nw-resize", + "n-resize", + "ne-resize", + "w-resize", + "e-resize", + "sw-resize", + "s-resize", + "se-resize", + + /*** resize cursors, from gtkpaned.c ***/ + "col-resize", + "row-resize", + + /*** dnd cursors, from gtkdnd.c ***/ + "dnd-ask", + "dnd-copy", + "dnd-move", + "dnd-link", + "dnd-none", + + "none", /* used e.g. in gtkentry.c */ + "pointer", /* used e.g. in gtklinkbutton.c */ + "text", /* used e.g. in gtkentry.c */ + "crosshair", /* used e.g. in gtkcolorplane.c */ + "progress", /* used e.g. in gtkfilechooserwidget.c */ +}; + +static void +test_cursor_existence (gconstpointer name) +{ + GdkDisplay *display; + GdkCursor *cursor; + + display = gdk_display_get_default (); + cursor = gdk_cursor_new_from_name (display, name); + g_assert (cursor != NULL); + g_object_unref (cursor); +} + +int +main (int argc, char *argv[]) +{ + guint i; + char *test_name; + char *theme; + + gtk_test_init (&argc, &argv); + + g_object_get (gtk_settings_get_default (), "gtk-cursor-theme-name", &theme, NULL); + g_test_message ("Testing cursor theme: %s", theme); + g_free (theme); + + for (i = 0; i < G_N_ELEMENTS (cursor_names); i++) + { + test_name = g_strdup_printf ("/check-cursor-names/%s", cursor_names[i]); + g_test_add_data_func (test_name, cursor_names[i], test_cursor_existence); + g_free (test_name); + } + + return g_test_run(); +} -- 2.30.2